package cn.redsoft.wechatapi.common.listener;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.dom4j.DocumentException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import cn.redsoft.wechatapi.common.exception.ConfigParseErrorException;
import cn.redsoft.wechatapi.common.util.ConfigParser;

public class WeChatServletContextListener implements ServletContextListener {

	protected Logger log = LoggerFactory
			.getLogger(WeChatServletContextListener.class);

	public WeChatServletContextListener() {
	}

	public void contextInitialized(ServletContextEvent arg0) {
		log.info("====================================");
		log.info("====================================");
		log.info("开始解析 wechat 配置文件 .");
		ServletContext context = arg0.getServletContext();
		String configLocation = context
				.getInitParameter("wechatConfigLocation");
		try {
			if (configLocation == null) {
				configLocation = "WechatConfig.xml";
				log.info("配置文件位置参数未找到 .");
				log.info("开始解析 ClassPath 下默认配置文件 : WechatConfig.xml");
			} else {
				log.info("开始解析 ClassPath 下配置文件 : {}", configLocation);
			}
			new ConfigParser().parse(configLocation);
		} catch (ConfigParseErrorException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (DocumentException e) {
			e.printStackTrace();
		}
		log.info("wechat 配置文件 解析完毕.");
		log.info("====================================");
		log.info("====================================");
	}

	public void contextDestroyed(ServletContextEvent arg0) {
	}

}
